package com.liux.rabbitmq.one;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * 生产者类，发送消息
 */
public class Producer {
    public  static  final  String QUEUE_NAME="hello";

    //发消息
    public static void main(String[] args) {
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("192.168.59.128");
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("admin");
        //创建连接
        Connection connection = null;
        try {
            connection = connectionFactory.newConnection();
            Channel channel = connection.createChannel();
            //生成一个队列
            /**
             * 1、队列名称
             * 2、队列是否持久化，默认在内存中，true表示持久化，要实现真正的持久化还要有消息持久化
             * 3、是否只供一个消费者，false多个消费者
             * 4、最后一个消费者断开连接，队列是否自动删除 true自动删除
             * 5、其他消息
             */
            channel.queueDeclare(QUEUE_NAME,false,false,false,null);
            //发消息
            String message = "hello world";
            /**
             * 1、发送到哪一个交换机
             * 2、路由的key，本次是队列的名称
             * 3、其他参数
             * 4、发送消息的消息体
             */
            channel.basicPublish("",QUEUE_NAME,null,message.getBytes());

            System.out.println("消息发送成功");

        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        }

    }
}
